In a software development environment, software developers typically employ different languages, interfaces and development toolkits. Such development elements allow integration of software objects based on or developed under the various elements to effectively interoperate and build the specified system or application. In a large system or application, there may be many developers, each developing software objects, or classes, under a particular language or platform, and many preexisting software objects which are integrated or interfaced via a toolkit or Application Programming Interface (API).
Accordingly, in a modern software development environment, many software objects interoperate in the development environment, and a build mechanism compiles, interprets, or otherwise processes the software objects into executable entities such as user applications. Unlike traditional development, where interoperability and integration between dissimilar development platforms often became sufficiently convoluted so as to encourage the development of homogenous systems, modern software development efforts typically incorporate development tools which strive to create interoperable software objects. Such modern systems strive to insulate developers from intricacies of code level interfaces and discrepancies. For example, the JAVA® language, developed by SUN Microsystems® of Palo Alto, Calif., strives to present an operating system independent data definition language. Further extensions abstract data types and interface parameter passing, ideally relieving the developer from the burden of such technical and implementation specific details. Therefore, software developers may concentrate on the logic, decision paths, and information flows performed by software systems, and avoid excessive distractions of technical implementation details which are instead handled by the compiler, interpreter, or runtime engine.